Toto je důležité na pochopení. S těmito termíny budem pracovat.
Shell: Shell je prostředí příkazového řádku, které umožňuje uživatelům interagovat s operačním systémem pomocí textových příkazů.
Prompt: Prompt je text nebo symbol zobrazený v příkazovém řádku, který indikuje, že systém je připraven k zadání příkazu a čeká na uživatelovu interakci.
Bash: (Bourne Again Shell) je jedním z nejpoužívanějších typů shellů v unixových operačních systémech, který poskytuje uživatelům rozhraní pro spouštění příkazů a skriptů.
V našich hodinách (a doma) budeme používat vzdálený shell na našem cvičném serveru, který slouží právě k těmto účelům. Výhodou je, že je dostupný odkudkoliv, pokud máte k dispozici počítač a internet. Spojení je šifrované. Pokud se například na vysoké škole potkáte s Linuxem, bude to právě tímto způsobem.
Otázka: Co znamená "server"? Jinými slovy, čím se liší běžný počítač od serveru?
Připojit se pochopitelně může pouze uživatel, který na něm má zřízený účet. Přihlašovací údaje jsou následující:
tux.panska.cz10XPrijmeniJ Dodržet velikost znaků. UNIX je na velikost citlivý!!!skolni_heslo Při psaní hesla systém nevypisuje žádné znaky (* •)Existuje několik možností (aplikací). Nám postačí ten, který nevyžaduje žádný dodatečný SW. Stačí aplikace PowerShell Windows. Spusťte jej a zapište:
ssh 10XPrijmeniJ@tux.panska.cz
Při prvním přihlášení na konkrétním počítači (škola, doma) musíte navíc odsouhlasit připojení k "neznámému" počítači: zapsat yes a Enter).
Pak zapište vaše školní heslo a potvrďte (Enter). V terminálu se nebude nic vypisovat - přesto se heslo píše.
Po přihlášení uvidíte stylizovanou uvítací ASCII grafiku TuXe, ale hlavně prompt. To je ten poslední řádek dole ve tvaru:
jmeno@pocitac ~
$
Do promptu zapisujeme příkazy a další věci a shell (v tomto případě bash) je vykoná.
Vzhled promptu jde změnit. V různých systémech proto může vypadat odlišně:
macOS:~ pepa$
pepa@debian:~$
[pepa@fedora ~]$
Časem se k tomu také dostaneme 😊
Příkazový interpret (shell) přijímá příkazy a realizuje je (to je to "černé okno"). Má svůj vlastní programovací jazyk a programy napsané v tomto jazyce se nazývají skripty (Shell scripts).
Existuje řada různých shellů, např. ash, csh, bash, tcsh, zsh, pdksh... V Linuxu nejpoužívanějším je právě bash.
Bash (Bourne Again Shell) je standardní interpret příkazů v Linuxu založený na Bourne shell. Funguje jako rozhraní mezi uživatelem a systémem.
Jelikož je součástí GNU projektu, nebylo problémem ho portovat na unixové systémy, takže jeho znalost uplatníte i mimo Linux, např. na macOS. Tam je výchozím shellem zsh.
Jde používat i v interaktivním režimu (takto jej budeme běžně používat i my). Pokud máte před sebou otevřený terminál, pak ho právě v tomto režimu používáte. To je standardní postup, který čeká na zadání příkazu od uživatele. Příkazy mohou být buď přímo zabudované v shellu nebo samostatné programy napsané téměř v libovolném programovacím jazyce.
Vyzkoušejte si to zadáním tohoto příkazu, který vypíše, jaký shell používáte:
$ echo $SHELL
Ten symbol $ na začátku řádku je zažitá konvence. Říká, že "to za tímto symbolem je příkaz".
Unixové systémy jsou citlivé na velikost znaků. $SHELL musí být velkými písmeny, protože jde o interní proměnnou systému.
Pomocí systémových proměnných umožňuje přizpůsobení pracovního prostředí. Některé z těchto proměnných jsou přednastaveny systémem, ostatní nastavuje uživatel např. v inicializačních souborech při spuštění shellu.
Bash je také velice mocný skriptovací nástroj. Když nám chybí nějaký program, nemusíme ho hned psát v jazyce C nebo Python, ale je možné vyřešit ho vytvořením skriptu.
Jinými slovy: Bash vás bude provázet po celou dobu práce s Linuxem.
Nakonec nemohu nezmínit tento terminál.
Windows od pradávna obsahoval a stále obsahuje terminálový program "Příkazový řádek Windows". Pro základní činnosti stačí, ale je to opravdu "jen" příkazový řádek. S možnostmi linuxových shellů (např. bash) se ani náhodou nedá poměřovat.
Microsoft si toho byl vědom a proto, ale nejen proto přišel v roce 2006 s Windows 7 vylepšeným terminálem PowerShell.
Domovská stránka: https://learn.microsoft.com/cs-cz/powershell/
Poznámka: Ve Windows 11 je trochu matoucí, že zapsáním příkazu cmd se automaticky spustí PowerShell namísto Příkazového řádku. Ve Windows 10 by se spustil klasický příkazový řádek (ajťáky přezdívaný "komandlajna").
Než si popíšeme jeho vlastnosti a možnosti, jedna naprosto nevídaná věc. Věřte nevěřte, PowerShell je šířený pod svobodnou licencí MIT a proto k dispozici i pro jiné OS jako Linux nebo macOS.
Z hlavních vlastností PowerShelu zmíním alespoň tyto. Uživatelé Bashe a ostatních shellů je považují za naprosto normální. S prvními čtyřmi se v hodinách potkáme:
.ps), má skript příponu .ps1.Microsoft s ním samozřejmě nepřišel "jen tak". Stále ve větším rozsahu se řada, zejména systémových nastavení provádí právě pomocí příkazů v PowerShellu. Jinými slovy, vývojáři v MS konečně pochopili, že nejde pro každé nastavení vytvářet klikací aplikaci. Je to přesně naopak: příkazy (a skripty) v terminálu jsou mnohem výkonnější a efektivnější. O tomtéž se budu snažit přesvědčit i vás 😊
Pokud máte Windows a chtěli byste si v něm hrát s Linuxem, nainstalujte si ho z MS Storu jako aplikaci. Aby to fungovalo musíte si nejprve do Windows nainstalovat podporu v podobě WSL. Nebojte, je to velmi snadné.
Pokud by vám později chyběl nějaký terminálový příkaz (aplikace), lze jej snadno nainstalovat pomocí správce balíků apt. Ten používá Debian a všechny jeho odvozeniny, jako Ubuntu nebo Mint. Využijte např. tento návod.
Tady je odpověď snadná: vy už "Linux" máte. Stačí spustit aplikaci Terminál.
Apple v macOS jako shell tradičně používá zsh. Mě osobně víc vyhovuje bash. Není problém jej aktivovat příkazem:
$ chsh –s /bin/bash
Pokud by vám později chyběl nějaký terminálový příkaz (aplikace), lze jej snadno nainstalovat pomocí Homebrew https://brew.sh/cs/. Je to vlastně takový "linuxový" repozitář pro macOS.
Existuje řada různých shellů, např. ash, csh, bash, tcsh, zsh, pdksh... Vyberte si jeden a popište ho: hlavní vlastnosti, syntaxi, funkce a možné využití. Zaměřte se také na to, čím se daný shell odlišuje od shellu bash.
Změna shellu: Vytvořte přehledný návod, jak zjistit dostupné shelly v unixovém systému, jak jej změnit a jak ověřit, že je aktivní.
ssh: Jaké jsou hlavní využití a výhody protokolu SSH (Secure Shell) v souvislosti s připojováním ke vzdáleným serverům a správou vzdálených zařízení? Jak může správné použití SSH přispět k zabezpečení komunikace a ochraně dat při práci se vzdálenými systémy?
WSL ve Windows: Jaké jsou hlavní výhody a funkce WSL (Windows Subsystem for Linux) ve Windows a jak může tento nástroj přispět vývojářům a uživatelům, kteří pracují s operačním systémem Windows?